package be.ipl.eBar.usecasesimpl;

import java.util.Calendar;
import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import be.ipl.eBar.dao.BiereDao;
import be.ipl.eBar.dao.CommandeDao;
import be.ipl.eBar.domaine.Commande;
import be.ipl.eBar.exceptions.CommandeNonSauveeException;
import be.ipl.eBar.usecases.GestionCommandes;

@Stateless
public class GestionCommandesImpl implements GestionCommandes {

	@EJB
	CommandeDao cdao;
	@EJB
	BiereDao bdao;

	@Override
	public List<Commande> listerCommandes() {
		return cdao.lister();
	}

	@Override
	public void supprimerCommande(Commande commande) {
		if (commande.getId() == 0)
			return;
		cdao.supprimer(commande.getId());
	}

	@Override
	public List<Commande> listerCommandes(Calendar date) {
		return cdao.lister(date);
	}

	@Override
	public Commande chargerTout(Commande commande) {
		if (commande.getId() == 0) {
			return commande;
		}
		return cdao.chargerBieres(commande);

	}

	@Override
	public void modifierCommande(Commande commande)
			throws CommandeNonSauveeException {
		if (commande.getId() == 0)
			throw new CommandeNonSauveeException();
		cdao.mettreAJour(commande);
	}

}
